A Lógica do "OU" e do "E"
Dois pilares sustentam todo o campo da combinatória. Sua aplicação depende inteiramente de vermos uma tarefa como uma escolha única entre várias categorias ou como uma sequência de escolhas.
Se um conjunto $X$ for particionado em subconjuntos disjuntos $X_1, X_2, \dots, X_n$, então o número total de elementos $|X|$ é a soma dos tamanhos desses subconjuntos:
$$|X| = |X_1| + |X_2| + \dots + |X_n|$$
Analogia: Escolher uma refeição no Kay’s Quick Lunch escolhendo ou um sanduíche do cardápio de Pratos Principais OU um petisco do cardápio de Entradas. Você não pode ter os dois; escolhe apenas um item.
Se uma atividade consiste em $t$ passos sucessivos, onde o passo $i$ tem $n_i$ resultados possíveis, o número total de maneiras de concluir a tarefa é o produto das possibilidades em cada passo:
$$N = n_1 \times n_2 \times \dots \times n_t$$
Analogia: Configurar um caminhão "Big Pickup". Você deve escolher um motor (5 opções) E um estilo de cabine (3 opções). O número total de configurações é igual a $5 \times 3 = 15$.
Implementação em Código e Complexidade
Na ciência da computação, esses princípios se manifestam em estruturas de laço. Laços sequenciais representam o Princípio da Adição, enquanto laços aninhados representam o Princípio da Multiplicação.
para i = 1 até m: imprimir(i)
para j = 1 até n: imprimir(j)
// Princípio da Multiplicação (execuções: m * n)
para i = 1 até m:
para j = 1 até n:
imprimir(i, j)